165 research outputs found

    Collaboration In Software Engineering Projects: A Theory Of Coordination

    Get PDF
    Coordination of engineering decisions is a central concern of software engineering. We present a theory in which coordination of engineering decisions is modeled as a distributed constraint satisfaction problem (DCSP). We derive six hypotheses, predicting how the distribution of decisions over developers and the density of constraints among decisions will affect development time, probability that a file contains a field defect, and developer productivity. We test these hypotheses using data from a commercial project. We find support for all hypotheses predicting detrimental effects from poor distribution of decisions over developers. The effects of constraint density were mixed, showing that dense constraints slowed development but did not significantly affect productivity. Dense data dependencies increased the chances that a file contained a field defect, but, very surprisingly, dense call dependencies significantly lowered the chances that a file contained a field defect. We discuss the implications of these findings

    04051 Abstracts Collection -- Perspectives Workshop: Empirical Theory and the Science of Software Engineering

    Get PDF
    From 25.01.04 to 29.01.04, the Dagstuhl Seminar 04051 ``Perspectives Workshop: Empirical Theory and the Science of Software Engineering\u27\u27 was held in the International Conference and Research Center (IBFI), Schloss Dagstuhl. During the seminar, several participants presented their current research, and ongoing work and open problems were discussed. Abstracts of the presentations given during the seminar as well as abstracts of seminar results and ideas are put together in this paper. The first section describes the seminar topics and goals in general. Links to extended abstracts or full papers are provided, if available

    Reading the documentation of invoked API functions in program comprehension

    Full text link
    Comprehending an unfamiliar code fragment requires an awareness of explicit usage directives that may be present in the documentation of some invoked functions. Since it is not practical for developers to thoroughly investigate every call, directives may be missed and errors may occur. We previously reported on a tool called eMoose, which high-lights calls to methods with associated directives, and on a controlled comparative lab study in which eMoose users were more successful at fixing bugs in given code fragments. In this paper we attempt to shed light on the factors behind these differences with a detailed analysis of videos from the study. We argue that information foraging theory may explain the subjects ’ reading choices and the impact of our tool. We also suggest ways to structure documentation to increase the prospects of knowledge acquisition. 1

    Social Media in Transparent Work Environments

    Get PDF
    Abstract-Social media is being integrated into work environments making them more transparent. When the work environment is transparent, it has the potential to allow projects to transmit information about work artifacts and events quickly through a large network. Using signaling theory, we propose a theory that users interpret this information and then make workrelated decisions about attention and effort allocation in a principled manner. In our research setting, an open source context of voluntary participation, broadcast activity information act as signals that allow developers to make highly informed choices about where to expend their attention and effort and with whom to collaborate. We propose four potential signals from literature and interviews with developers in our research setting and discuss the implications for social media in software development environments

    Shared Mental Models, Familiarity, and Coordination: A Multi-Method Study of Distributed Software Teams

    Get PDF
    Coordination is important in large-scale software development because of the many people involved and the complex dependencies present in software tasks. Even small improvements in productivity can lead to substantial cost savings and competitive advantage. But despite great technological advances in software engineering and collaboration tools in recent years, coordination in software development projects continues to be problematic. Traditional theories suggest that team members coordinate by programming their tasks and by communicating with each other, but more recent research also suggests that they coordinate through work familiarity, and team cognition mechanisms like shared mental models. This paper reports on the results of a multi-method research investigation of how shared mental models, work familiarity and geographic dispersion affect coordination in software teams. This research is based on three studies conducted at a large telecommunications company: face-to-face interviews, survey, and archival studies. Results show that shared mental models have a positive effect on team coordination and that prior familiarity with the same software parts and projects reduces software development time. Results also indicate that geographic dispersion increases software development time and that the effect of work familiarity is stronger for geographically distributed teams than for colocated teams

    Shared Mental Models and Coordination in Large-Scale, Distributed Software Development

    Get PDF
    Despite substantial improvements in the last few years in software engineering and collaboration tools, coordination in large-scale software development continues to be problematic. This coordination is important because of the complex interdependencies that exist among software tasks, in that small productivity improvements can lead to substantial cost-savings and competitiveness. Traditional theories suggest that collaborators coordinate by organizing tasks and communicating, but recent research suggests that they also coordinate via implicit mechanisms like shared mental models. However, most of the shared mental model research literature focuses on real-time tasks, and there is very little empirical evidence on how these models affect coordination in more asynchronous and geographically distributed collaboration. Furthermore, none of this evidence is based on large-scale software development organizations. The present research is a field study at a large telecommunications company. It employs qualitative, quantitative, and survey research methods to investigate the effect of shared mental models on coordination in large-scale software development, and to better understand how geographic distance affects coordination

    Structuring Documentation to Support State Search: A Laboratory Experiment about Protocol Programming

    Get PDF
    Abstract. Application Programming Interfaces (APIs) often define object protocols. Objects with protocols have a finite number of states and in each state a different set of method calls is valid. Many researchers have developed protocol verification tools because protocols are notoriously difficult to follow correctly. However, recent research suggests that a major challenge for API protocol programmers is effectively searching the state space. Verification is an ineffective guide for this kind of search. In this paper we instead propose Plaiddoc, which is like Javadoc except it organizes methods by state instead of by class and it includes explicit state transitions, state-based type specifications, and rich state relationships. We compare Plaiddoc to a Javadoc control in a betweensubjects laboratory experiment. We find that Plaiddoc participants complete state search tasks in significantly less time and with significantly fewer errors than Javadoc participants
    • …
    corecore